Benchmarking purely functional data structures

نویسنده

  • Graeme E. Moss
چکیده

When someone designs a new data structure, they want to know how well it performs. Previously, the only way to do this involves nding, coding and testing some applications to act as benchmarks. This can be tedious and time-consuming. Worse, how a benchmark uses a data structure may considerably a ect the e ciency of the data structure. Thus, the choice of benchmarks may bias the results. For these reasons, new data structures developed for functional languages often pay little attention to empirical performance. We solve these problems by developing a benchmarking tool, Auburn, that can generate benchmarks across a fair distribution of uses. We precisely de ne \the use of a data structure", upon which we build the core algorithms of Auburn: how to generate a benchmark from a description of use, and how to extract a description of use from an application. We consider how best to use these algorithms to benchmark competing data structures. Finally, we test Auburn by benchmarking several implementations of three common data structures: queues, random-access lists, and heaps. These and other results show Auburn to be a useful and accurate tool. They also reveal areas requiring improvement, which we list as future work. ii

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Automated Benchmarking of Functional Data Structures

Despite a lot of recent interest in purely functional data structures, for example Ada93, Oka95, BO96, Oka96, OB97, Erw97], few have been benchmarked. Of these, even fewer have their performance qualiied by how they are used. But how a data structure is used can signiicantly aaect performance. This paper makes three original contributions. (1) We present an algorithm for generating a benchmark ...

متن کامل

Inductive benchmarking for purely functional data structures

Every designer of a new data structure wants to know how well it performs in comparison with others. But finding, coding and testing applications as benchmarks can be tedious and time-consuming. Besides, how a benchmark uses a data structure may considerably affect its apparent efficiency, so the choice of applications may bias the results. We address these problems by developing a tool for ind...

متن کامل

Auburn: A Kit for Benchmarking Functional Data Structures

Benchmarking competing implementations of a data structure can be both tricky and time consuming. The eeciency of an implementation may depend critically on how it is used. This problem is compounded by persistence. All purely functional data structures are persistent. We present a kit that can generate benchmarks for a given data structure. A benchmark is made from a description of how it shou...

متن کامل

Mergeable persistent data structures

Irmin is an OCaml library to design purely functional data structures that can be persisted on disk and be merged and synchronized efficiently. In this paper, we focus on the merge aspect of the library and present two data structures built on top of Irmin: (i) queues and (ii) ropes that extend the corresponding purely functional data structures with a 3-way merge operation. We provide early th...

متن کامل

Software reuse as a potential factor of database contamination for benchmarking in Function Points

The benchmarking activities to which this work refers are based on technical and administrative data gathered from software projects using appropriate systems of measurement, first among which at present is Function Point Analysis. Benchmarking databases contain actual data regarding not only the size of a software project, but its productive factors as well. These databases may have a number o...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2000